Don't convert param buffer to utf-8#165
Conversation
When a buffer is used as parameter it would always be converted to a utf-8 string. To allow working with a DB that has charset NONE, the buffer is now send directly without converting to string.
|
Hello, |
|
I wanted to merge this into my Fork, but the OP deleted his Repo fork :/ |
|
Sorry about that. I cleaned up too much (PR is a year old). But I think you can still merge a PR without the fork? |
|
The Owner can merge this PR on his master, but I tried to create a PR on my Fork but I could not find your branch do cherrypick a Commit. I tried adding the original REPO as a second remote to my fork, and fetched it, but your commit doesn't appear. so It seems the PR's commit exists outside the main Repo. I'm trying to merge the changes by hand lol. |
|
I can make a new PR for this if you like? |
|
Its ok, I already applied the patch manually to my Branch. as well as other things. I discovered this nice tool from GitHub. https://patch-diff.githubusercontent.com/raw/hgourvest/node-firebird/pull/165.patch where it shows the patch diff of a particular PR. Sadly I found it after I already copied the code over by hand hahaha. |
|
@hgourvest @mariuz what do you think about this PR? I am facing the same issue and I would like to collaborate. According to the past messages, I understood @r03 has abandoned this PR, but I can assume and solve the conflict. But my question is why it was not merged before (it is open since 2018). Depending on what is the problem I can contribute in order to approve this PR. |
|
Perfect tank's! |
|
I have the same problem, i need put in BD information with acute accent and my field is with charset NONE and collate NONE, but the information save wrong example: café -> Café |
you have to be mindful of the charset of the existing data on the DB and the data you are trying to put in. when the charset is NONE, basically what you put it what you read. The main issue is that this Lib applied UTF8 to everything by default. which would be fine if it was the only thing touching the database. But if you are mixing access with a Windows Program using WIN-1256 Encoding then we have issues, because the bytes are no encoded in the same way. so if you insert "João" using node, then the windows app will decode UTF-8 as WIN-1256 which will result in "Joéo". And thats the purpose of this PR, which allows Data to be written as raw Bytes to the Fields, so You can encode the string with WIN-1256 using iconv-lite for example. then the text will be correct everywhere. My fork of this Repo has this PR applied, altho it is behind several commits, it is still used by my company. |
|
Why this PR was never merged? I have this problem and need it. |
|
I resolved this problem setting my table fields to charset WIN1252 and in
node-firebird i used with out function that convert in buffer and resolved
my problem with charset.
Em seg., 19 de jul. de 2021 às 14:18, João Eduardo ***@***.***>
escreveu:
… I have the same problem, i need put in BD information with acute accent
and my field is with charset NONE and collate NONE, but the information
save wrong example: café -> Café
you have to be mindful of the charset of the existing data on the DB and
the data you are trying to put in.
when the charset is NONE, basically what you put it what you read. The
main issue is that this Lib applied UTF8 to everything by default. which
would be fine if it was the only thing touching the database.
But if you are mixing access with a Windows Program using WIN-1256
Encoding then we have issues, because the bytes are no encoded in the same
way. so if you insert "João" using node, then the windows app will decode
UTF-8 as WIN-1256 which will result in "Joéo".
And thats the purpose of this PR, which allows Data to be written as raw
Bytes to the Fields, so You can encode the string with WIN-1256 using
iconv-lite for example. then the text will be correct everywhere.
My fork of this Repo has this PR applied, altho it is behind several
commits, it is still used by my company.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#165 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHPO43YGQ4FTHJ25JAMQVCDTYRUAPANCNFSM4F7YCRAA>
.
|
Only works if you can make this change, Firebird 2.1 isn't a big fan of Charsets. The library must be agnostic to avoid problems globally. |
|
I can't change the charset of the tables because is a old BD with thousends of procedures, tables, etc. and all the varchars are defined to NONE charset. |
|
Hi, I also need fix this problem. I can't change de charset of my table's varchars either. |
|
Hi, there are any solutions for this problem or somebody developing in it? |
|
I converted my fields varchar to charset Win1252 and resolved the problem.
Em qua., 1 de set. de 2021 às 02:38, Óscar Hernández Navarro <
***@***.***> escreveu:
… Hi, there are any solutions for this problem or somebody developing in it?
Thank you.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#165 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHPO4352KTVVRYO7N2T5VLLT7XC5JANCNFSM4F7YCRAA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
|
I know that is a solution but I said that can not change this fields charset because is a very big and old database. Thus this pull request is very helpful. |
|
Guys, why is this PR still on hold? |
When a buffer is used as parameter it would always be converted to a
utf-8 string. To allow working with a DB that has charset NONE, the
buffer is now send directly without converting to string.
This could solve #164
You have to take care of your own encoding.
It could be used like this: